home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Tools (InfoMagic)
/
Internet Tools.iso
/
dos_win
/
winsock
/
maillist
/
94-05.Z
/
94-05
/
000310_davidtr@microsoft.com_Sat May 21 09:55:00 1994.msg
< prev
next >
Wrap
Internet Message Format
|
1994-05-31
|
24KB
Received: from netmail2.microsoft.com by SunSITE.Unc.EDU (5.65c+IDA/FvK-1.07) with SMTP
id AC17389; Sun, 22 May 1994 19:08:09 -0400
Received: by netmail2.microsoft.com (5.65/25-eef)
id AA04158; Sun, 22 May 94 15:09:43 -0700
Received: by netmail2 using fxenixd 1.0 Sun, 22 May 94 15:09:42 PDT
Message-Id: <9405222308.AA10020@itgmsm>
From: davidtr@microsoft.com
To: winsock@sunsite.unc.edu
Subject: *** WinSock 2 Framework Doc ***
Date: Sat, 21 May 94 16:55:00 PDT
X-Mailer: Microsoft Mail V3.0
Below is the latest revision of the Windows Sockets 2.0 framework document.
It includes changes based on the Interop meeting and other feedback we've
received.
Please note that the deadline for volunteering as a group administrator is
this Tuesday, May 24. As outlined in previous mail, please contact
martinh@jsbus.com if you are interested.
Martin, Mark, and Dave
-----------------------------------------------
Windows Sockets Version 2 - Operating Framework
-----------------------------------------------
Date: May 20, 1994
Project Status: Phase 1
Authors: Martin Hall, Dave Treadwell, Mark Towfiq
This document is organized as follows
1. Objectives (Why are we doing this?)
2. Mission Statement
3. Overview (What's it all about?)
4. Specification Paramaters & Requirements
4.1 General Referential Paramaters
4.2 Technical Requirements
5. Organizational Framework
5.1 Moderators
5.2 Review Boards
5.2.1 Review Board Administrators
5.2.2 Application Review Board
5.2.3 Transport Review Board
5.3 Functionality Groups
5.3.1 Functionality Group Administrators
5.3.2 Generic API Extensions & Additions
5.3.3 Specification Clarifications
5.3.4 Name Resolution
5.3.5 Operating Framework
5.3.6 TCP/IP
5.3.7 IPX/SPX
5.3.8 Appletalk
5.3.9 Connection-Oriented Media
5.3.10 OSI
5.3.11 Wireless
6. Timeframes (Project Phases)
7. Discussion Forums
------------
Introduction
------------
This is a rolling document that defines the framework for the
creation of the Windows Sockets Version 2 specification. As the
document is changed, the date at the head will change. Please note
the status indicates the phase we are in as laid out in the
Timeframes section in this document.
--------------------------------------
1. Objectives (Why are we doing this?)
--------------------------------------
Windows Sockets has succeeded to date because
1. It has met the needs of application developers ("I'm tired of all these
different API's!")
2. It has led to easier decisions for end users ("I want a Windows Sockets
app, I want a Windows Sockets compliant stack and I want them now!")
3. It's been fun and pursued in a great spirit of cooperation
The burgeoning implementation of LAN environments, the rise and rise of
TCP/IP, the widespread acceptance of Windows Sockets in the application
developer community and amongst application users have all helped make
Windows Sockets something of a de facto standard in a very short period of
time. It is therefore natural to consider amending and extending Windows
Sockets to make it the de facto transport API for all data communication
irrespective of protocol.
--------------------
2. Mission Statement
--------------------
The goal of Windows Sockets 2 is to make it a ubiquitous transport level
API available in all Windows operating systems and capable of supporting
multiple data transports simultaneously. It will allow flexible addition
of transport functionality while providing a consistent API base for
straightforward application development. Windows Sockets 2 will standardize
the API such that similar functionality in different transports will be
accessible via common mechanisms. It will also provide mechanisms for
applications to access essential characteristics that are specific to
particular classes of transports.
All this serves to help reach the ultimate goal of Windows Sockets: to
provide a truly transport-independent API that allows developers to create
transport-independent and transport-efficient applications and allows users
to select applications based on functional merit rather than the transports
they support.
----------------------------------
3. Overview (What's it all about?)
----------------------------------
The Windows Sockets Version 2 specification will extend Windows Sockets
Version 1.1 in 3 key areas
1. API Extensions
Over 2 years experience of Windows Sockets has led to various suggestions
for improvements to the existing specification. There are a number of
proposals for API additions and extensions which make it even easier for
application developers to utilize Windows Sockets implementations.
Some of these extensions are likely to be generically applicable, some will
be transport specific.
2. Multiple Network Transport Capabilities
The success of version 1.1 of Windows Sockets has led to a clamor for
support of network transports other than TCP/IP. Requests have been
made to design support for IPX/SPX, Appletalk, OSI and DECnet specifically.
In response to demand for a standard data transfer API for emerging
technology such as ATM and telephony-based transports, there will also be
consideration of how best to enable this in a Windows Sockets framework.
The design groups in Windows Sockets 2 will also seek to create a generic
architectural framework that will host any network transport.
3. Operating System Considerations & Architectural Issues
The Microsoft Windows Operating System platforms will soon be extended
beyond Windows 3.1 and Windows NT for which Windows Sockets 1.1 was
designed. Windows Sockets Version 2 will take into account not just
these platforms but forthcoming versions of both Windows NT and
Chicago. An important goal of Windows Sockets 2 is thus ensuring that
Windows Sockets applications can be well-integrated within these
operating systems.
---------------------------
4. Specification Parameters
---------------------------
4.1 General Referential Parameters
----------------------------------
The following list of parameters is designed to help us all clearly
understand the parameters around what we are trying to achieve. Windows
Sockets 1.1 succeeded in part because we had a clear set of parameters
against which to measure and judge the specific applicability of any
particular piece of functionality. Everything we consider in every
Functionality Group should be prescribed by the following parameters.
Please note that these parameters are numbered for easy reference.
1. Don't introduce API changes that preclude a vendor from
simultaneously supporting 1.1 and future versions
2. Enable Windows Sockets 1.1 apps to become Windows Sockets 2 apps with
minimal code changes
3. The only changes to the Windows Sockets 1.1 API set will be
specification clarifications
4. New functionality will be added in such a way that it's clearly
distinguishable from the Windows Sockets 1.1 API set
5. Wherever possible, new API's should be supersets of old API's
6. Follow existing precedents.
For example, we will continue to use BSD 4.3 Sockets as a guiding
model where possible. Where recognized work has already been
done in a particular area we should make use of it.
7. Windows Sockets 2 specification to be complete and final by April 30,
1995
8. Facilitate high performance implementations.
9. New functionality to be driven by application and end user
requirements.
10. Don't try to do everything; prioritize proposed changes & additions
and focus on highest priority items.
11. Where possible, implement functionality generically.
We want to ensure that we solve similar problems worked on
by different Functionality Groups in a common and consistent way.
12. Enable transport-independent applications. It should be possible
to write an application that works over any transport without
knowing the details of any one transport.
13. Enable transport-efficient applications. It should be possible
to write a transport-specific application that takes advantage
of special features of a particular transport.
14. Mandatory functionality for any particular transport must be consistent
and logical.
15. Ensure that proposed functionality changes & additions mesh with
each other and with Windows API's and operating system services.
16. Windows Sockets is not SNMP.
17. Optional functionality should be generally useful and the exception
rather than the rule.
4.2 Technical Requirements
--------------------------
Each Functionality Group will have a clear set of requirements which
define the problems it is trying to address. The initial work of each
Functionality Group will be to define these requirements in the context
of the Referential Parameters set out above.
---------------------------
5. Organizational Framework
---------------------------
The success of Windows Sockets 1.1, the complexity and breadth of issues
under discussion for Windows Sockets version 2 and the number of people
now involved in the various Windows Sockets forums means we need a clearer
operational structure for progress this time around.
In order to allow everyone to contribute to areas which they care
about we have designed the following operational structure to
facilitate discussion and to enable maximum progress. The most
important groups are the Review Boards and Functionality Groups.
Together, these groups will be responsible for discussing, agreeing and
designing new functionality.
--------------
5.1 Moderators
--------------
Martin Hall, Dave Treadwell and Mark Towfiq will act largely as
coordinators of the Windows Sockets 2 effort. They will be responsible
for:
* Coordinating the various groups to ensure that the process
moves in the right direction.
* Facilitating information flow between the groups so that new
features are implemented consistently.
* Producing the consolidated header file for Windows Sockets 2.
* Working with the Review Boards to help consolidate specification
sections produced by the Functionality Groups.
* Handling public relations for Windows Sockets 2.
* Working with the Review Boards to address discrepancies between the
work produced by each Functionality Group.
-----------------
5.2 Review Boards
-----------------
The reason for establishing Review Boards is to enable the ongoing
pragmatic goals of Windows Sockets to be realized. In the world of
Windows Sockets, pragmatism is defined by
1. The applicability of Windows Sockets functionality to application
developers.
2. The ease with which functionality can be implemented by
Windows Sockets providers (typically, but not necessarily,
network transport vendors)
To this end, there will be 2 Review Boards. Each board will
review submissions from each Functionality Group in the light of the
pragmatic goals of Windows Sockets. Each Review Board will have an
administrator with responsibilities as outlined above.
5.2.1 Review Board Administrators
---------------------------------
The responsibilities of the administrator of each Review Board are to
ensure:
* Refinement of requirements initially proposed by Functionality Groups
* Progress according to the key milestones
* Discussions framed by general referential paramaters
* Design decisions meet the referential paramaters and the Windows Sockets 2
requirements
* Consistency of proposals from Functionality Groups
* Arrangement of meetings on an as needs basis
* Regular communication with moderators
5.2.2 Application Review Board
-------------------------------
Charter: The Application Review Board will review submissions from
each Functionality Group. It will focus on the submission's
applicability to and ease of use by application developers as
well as confirming that functionality required by applications
is supported.
Membership: A maximum of one representative from each company will
contribute to this group.
5.2.3 Transport Review Board
-----------------------------
Charter: The Transport Review Board will review submissions from
each Functionality Group. It will focus on the ease of
implementation of a piece of functionality.
Membership: A maximum of one representative from each company will
contribute to this group.
5.3 Functionality Groups
------------------------
The reason for establishing Functionality Groups is to break up
the large body of issues that require discussion for Windows Sockets 2 into
manageable chunks. The following groups will also allow people to focus
on areas of particular interest and ignore ones they don't care about.
Each Functionality Group will have an administrator responsible for
coordinating the group's discussion and ensuring that the general
parameters and timeframes for Windows Sockets 2 are met.
Please note that at this point the proposals listed below are just that.
Each group will define the actual requirements which may lead to the
exclusion of some proposals listed below and/or the inclusion of others
not listed. Phases 1 and 2 as outlined below will see the production
of a Requirements Document for each Functionality Group.
5.3.1 Functionality Group Administrators
----------------------------------------
The responsibilities of the administrator of each Functionality
Group are to ensure:
* Progress according to the key milestones
* Regular communication with other functionality groups
* Discussions framed by general referential paramaters
* Design decisions meet the referential paramaters and the group's
requirements
* Arrangement of meetings on an as needs basis
* Regular communication with moderators
* Ultimate responsibility for producing actual specification sections
for the group
* Moderation of the group's mailing list: keep high signal-to-noise ratio
5.3.2 Generic API Extensions & Additions
-----------------------------------------
Charter: To design and specify general extensions to the Windows Sockets
API. Features and changes should be applicable to multiple
transport protocols.
Proposals:
Improved support for other languages: C++, Basic, Pascal
True asynchronous send() and recv() mechanisms
Ability to share sockets between tasks/processes
"Deferred accept()"--don't establish connection immediately
SO_SNDTIMEO and SO_RCVTIMEO socket options
4-byte per-socket context value stored by Windows Sockets DLL
Standard routine to map Windows Sockets error codes to strings
Application yielding, blocking hooks
Socket Groups
Support for message-oriented (partial) receives
Per-socket query of max message length
Support for connect and disconnect data
Transaction-oriented transport support
Mechanism for querying optional functionality
Scatter write, gather read
sethostname()
Mechanism to retrieve network statistics
5.3.3 Specification Clarifications
-----------------------------------
Charter: Resolve ambiguities in the Windows Sockets specification to
ensure that all Windows Sockets implementations have a
consistent interpretation of the interface.
Proposals:
WSAAsyncSelect() issues
Multiple versions supported by a single Windows Sockets DLL
Unconnecting datagram sockets
FD_CLR performance improvements
s_port in servent struct is int
Stack space requirements on winsock DLL
NULL array pointers in hostent struct
Structure packing of servent, protoent
winsock.h: all ports, ip addrs in NETWORK order
closesocket() on nonblocking sockets
Samples for every API
FD_READ contains error--> no need for recv()
5.3.4 Name Resolution
----------------------
Charter: Design and specify a name-service independent interface which
allows Windows Sockets applicationt to resolve huiman-readable
host or service names into Windows Sockets transport addresses
(SOCKADDRs).
Proposals:
Support for other name service providers
Host/Service enumeration
Internationalizable (unicode) name resolution routines
Dynamic service registration
Directory Service support
Define standard location for database files
5.3.5 Operating Framework
--------------------------
Charter: Ensure that Windows Sockets DLLs and transport protocols can
coexist in the various operating systems which support Windows
Sockets.
Proposals:
Operating System versions--Win 3.1, WFW, NT, Chicago
Configuration
Architecture
Multiple Transport Procotol Stacks on a single host via a single DLL
Multiple Windows Sockets DLLs on a single host
Clearinghouse for address familys, protoocls, socket types
Mechanism for determining version of winsock DLL
5.3.6 TCP/IP
-------------
Charter: Provide TCP/IP-specific extensions to the Windows Sockets API.
Proposals:
ICMP, Raw Sockets, Ping
RFC 793 & 1122 OOB Data support
Get/Set/Delete ARP entries
gethostid()
SIOCGIFADDR, SIOCGARP, SIOCGHIWAT, SIOCGIFNETMA
Mechanism to set TTL in IP header
rresvport()
IP multicast support (IGMP)
IPng support
UDP datagram send size != receive size
Standardize OOB handling
Option to disable UDP checksum
5.3.7 IPX/SPX
--------------
Charter: Provide IPX/SPX-specific extensions to the Windows Sockets API.
Proposals:
No specific ones as yet
5.3.8 AppleTalk
----------------
Charter: Provide AppleTalk-specific extensions to the Windows Sockets API.
Proposals:
No specific ones as yet
5.3.9 Connection-Oriented Media (formerly Telephony)
----------------
Charter: Extend Windows Sockets to handle connection-oriented
physical media including ATM, ISDN, etc.
Proposals:
Lots of interest
5.3.10 OSI
----------------
Charter: Provide OSI-specific extensions to the Windows Sockets API.
Proposals:
No specific ones as yet
5.3.11 Wireless
----------------
Charter: Provide Wireless-specific extensions to the Windows Sockets API.
Proposals:
No specific ones as yet
------------------------------
6. Timeframes (Project Phases)
------------------------------
We have identified the following timeframes for Windows Sockets
Version 2. Please note that the overall project is broken into
phases so we can easily identify where we are.
PHASE 1 - Create First Functionality Group Requirements Drafts
--------------------------------------------------------------
Functionality Groups create initial Requirement Drafts.
Functionality Group Administrators submit this draft to
the mailing list of each Review Board by Completion Date.
Completion Date: June 6 1994
PHASE 2 - Create Final Functionality Group Requirements Drafts
--------------------------------------------------------------
Review Boards consider the Requirement Drafts.
Functionality Groups refine the Requirement Drafts based on
input from Review Boards.
Functionality Group Administrators submit the final draft to
the mailing list of each Review Board by Completion Date.
Completion Date: Jun 30 1994
PHASE 3 - Create first draft Functionality Group specifications
---------------------------------------------------------------
Functionality Groups work on solutions in the context of
the Requirements Document for their group.
Functionality Group Administrators submit their Functionality Group's first
draft specification to the mailing list of each Review Board by Completion
Date.
Completion Date: Aug 31 1994
PHASE 4 - Create intermediate draft Functionality Group specifications
----------------------------------------------------------------------
Review Boards consider the first draft specifications.
Functionality Groups refine the first draft specifications based on
input from Review Boards.
Functionality Group Administrators submit the intermediate draft
specifications tothe mailing list of each Review Board by Completion Date.
Completion Date: Nov 30 1994
PHASE 5 - Preliminary Interoperability Testing
----------------------------------------------
It is expected that software vendors will be working on Windows Sockets 2
implementations as the specification evolves. This phase will include
the first interoperability testing for Windows Sockets Version 2.
Date: Jan 1995
PHASE 6 - Create final draft Functionality Groups specifications
----------------------------------------------------------------
Review Boards consider the intermediate draft specifications & results
of interoperability testing.
Functionality Groups refine draft specs based on Review Board input and
interoperability testing.
Functionality Group Administrators submit the final draft specifications to
the mailing list of each Review Board by Completion Date.
Completion Date: Feb 28 1995
PHASE 7 - Interoperability Testing
----------------------------------
This phase will include further interoperability testing for
Windows Sockets Version 2.
Date: Mar 1995
PHASE 8 - Complete Windows Sockets 2 specification
------------------------------------------
Review Boards consolidate and refine specification.
Windows Sockets 2 specification completed and published by;
completion date.
Completion Date: Apr 30 1995
---------------------
7. Discussion Forums
---------------------
Email & Newsgroup details
With the recent reorganization of the Windows newsgroups, we see a need
to:
1. Create new mailing lists for Windows Sockets 2
2. Shift the mailing list gated to alt.winsock
3. Re-think winsock-hackers and winsock-users.
Here are the new networking-related newsgroups
comp.os.ms-windows.networking.tcp-ip Windows and TCP/IP etworking
comp.os.ms-windows.networking.windows Windows' built-in networking
comp.os.ms-windows.networking.misc Windows and other networks
comp.os.ms-windows.programmer.networks Network programming
For the current mailing lists we propose to
1. Gate the present winsock mailing list to
comp.os.ms-windows.networking.tcp-ip
(since, although winsock is not only for TCP/IP, 95% of the traffic on the
mailing list is about TCP/IP).
2. Gate winsock-hackers to comp.os.ms-windows.programmer.networks.
3. Drop winsock-users because of minimal usage.
For Windows Sockets Version 2 discussion we propose to
1. Create a new mailing list for discussion of general issues related
to Windows Sockets version 2.
2. Create separate mailing lists for individual Review Boards and
Functionality Groups.
None of these will be gated to a newsgroup, to facilitate focussed
discussion.
-------------------------------------------------------------------------
Martin Hall 108 Whispering Pines Drive, Suite 115
JSB Corporation Scotts Valley, California 95066
martinh@jsbus.com Tel: 408-438-8300 Fax: 408-438-8360